"""
7-7 输出鞍点的行列下标
一个矩阵元素的“鞍点”是指该位置上的元素值在
该行上最大、在该列上最小。
本题要求编写程序，求一个给定的n阶方阵的鞍点的行列值。

找鞍点这道题其实是一道有一定难度的题目，
当时学C语言的时候有做过这道题，
也被难住了一段时间~
"""


def resolution1():
    n = int(input())
    # 初始化一个二维矩阵
    matrix = [[0] * n for _ in range(n)]
    '''
    不可以用这样来初始化一个二维矩阵 matrix = [[0] * n] * n
    这种方式会导致所有的行都是对同一个列表的引用，
    也就是说，所有的行都指向同一个列表，当你修改其中一行的时候，
    所有的行都会被修改。
    '''
    # 构造二维矩阵
    for i in range(n):
        numbs = input().split()  # 默认分割符意味着按不定空格数的空格来进行分割
        for j, numb in enumerate(numbs):
            matrix[i][j] = numb
    # print(matrix) # 测试成功可以正常读入
    # 寻找鞍点
    has_point = False
    for i in range(n):
        # 找到第i行的最大值
        max_row = max(matrix[i])
        for j in range(n):
            # 找到第j列的最小值
            min_col = min(matrix[k][j] for k in range(n))
            # 如果第i行的最大值等于第j列的最小值，那么这个位置就是鞍点
            if matrix[i][j] == max_row == min_col:
                print(f"{i} {j}")
                has_point = True
    # 如果不存在鞍点
    if not has_point:
        print("NONE")


if __name__ == '__main__':
    resolution1()


